今天突然整個不知道要寫什麼 @@
一定是禮拜六要上課的關係 ##
今天呢 就來講講有關於 Rust 的 struct 吧!
use std::io;
struct User {
name: String,
password: String,
email: String,
}
fn main() -> io::Result<()>{
let a = User {
name: "Kent".to_string(),
password: "123456".to_string(),
email: "kent1129o0@gmail.com".to_string()
};
let mut input_name = String::new();
io::stdin().read_line(&mut input_name).unwrap();
let mut input_password= String::new();
io::stdin().read_line(&mut input_password).unwrap();
println!("{:#}{:#}", input_name, input_password);
if a.name.eq(&input_name.trim()) || a.password.eq(&input_password.trim()) {
println!("Your Email is {:#}", a.email);
}
else {
println!("Error Name or Password");
}
Ok(())
}
我趁著中午寫了一點點的 Code 那我會逐步解釋上面的東西
希望這種形式大家喜歡 ><
最上面的 use std::io 這是什麼意思呢?
std 就是標準庫,然後我從中取出了一個區塊因為後面輸入會用到
但是其實也可以直接寫完整路徑,只是程式碼會變得壟長,所以這裡就先 use 他
下面能夠看到我定義出了一個名為 User 的 Struct 裡面會有 name password email
那後面我在 Main Function 中使用了此 Struct 並且命名為 a
可以發現 後面使用的時候就能直接取出原本定義的 a Struct 裡頭定義的東西。
後面就是輸入的環節可以看到說使用了 io::stdin() 裡面的 readline
在使用前先定義出一個空的字串然後在將他作為參數傳入剛剛講的 readline
那為什麼要 .unwrap 呢?
因為這個回傳的會是一個 Result<T, E> 這個後面會詳細說明,現在只要記得說這是為了避免錯誤而出現的篩選機制,(好像都講完他的特色了)反正, .unwrap() 就是讓他變成是非 Error 的那個
也能用 ? 來做簡寫
後面的話就是比較的部份
io::stdin().read_line(&mut input_password)?;
像這樣
後面則是比較部份,我就直接使用內建的 eq 處理比較的部份
不過需要注意的是 readline會多讀一個換行 所以使用 trim() 去除換行就能成功了。
所以以上提到了,怎麼定義 Struct 以及如何輸入
那必然的 Struct 絕對不只於此其實他的定義也可以設為 tuple 元組,tuple是之前在講函數時有講到回傳多項那邊的東西,把多個變數包在一起。
struct tup(i32, i8);
那麼以上就是所有 Struct 的內容
明天我會提到 impl 算是 Rust 中的 Class 吧
標題每天都好難定 都覺得很俗QQ